package com.nbufe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nbufe.domain.ResponseResult;
import com.nbufe.domain.dto.trade.CarbonTradeDto;
import com.nbufe.domain.dto.trade.QueryTradePage;
import com.nbufe.domain.entity.CarbonTrading;

import java.util.Map;


/**
 * 碳交易表(CarbonTrading)表服务接口
 *
 * @author luzhiheng
 * @since 2024-01-25 15:22:35
 */
public interface CarbonTradingService extends IService<CarbonTrading> {

    /**
     * 获取碳市场信息
     * @param type 类型 0全国每日碳市场 1欧洲市场 2美国市场 3韩国市场 4北京碳市场 5上海碳市场 6深圳碳市场 7广东碳市场 12全国每周碳市场
     * @return
     */
    ResponseResult queryMarketInfo(Integer type);

    /**
     * 查询碳资产信息
     * @return
     */
    ResponseResult queryCarbonAssertInfo();

    /**
     * 查询当前碳资产
     * @return
     */
    ResponseResult queryCurrentCarbonAssert();

    /**
     * 查询月度碳交易对比
     * @return
     */
    ResponseResult queryCarbonTradeCompare();

    /**
     * 碳资产与实际排放对比
     * @return
     */
    ResponseResult queryCarbonAssertCompare();

    /**
     * 分页查询碳交易列表
     * @param queryTradePage
     * @return
     */
    ResponseResult queryTradeList(QueryTradePage queryTradePage);

    /**
     * 查询总CCER量
     * @return
     */
    Double queryTotalCCER();

    /**
     * 查询总碳配额
     * @return
     */
    Double queryTotalQuota();

    /**
     * 查询碳资产信息
     * @return
     */
    ResponseResult queryCarbonAssert();

    /**
     * 碳资产交易
     * @param map
     * @return
     */
    ResponseResult carbonAssertTrade(Map<String, Object> map);

    /**
     * 碳资产与实际排放对比
     * @return
     */
    ResponseResult carbonEmissionCompare();

    /**
     * 查询各地区最新碳交易价格
     * @return
     */
    ResponseResult queryNewPrice();

    /**
     * 买入碳资产
     * @return
     */
    ResponseResult buyCarbon(CarbonTradeDto dto);

    /**
     * 卖出碳资产
     * @return
     */
    ResponseResult sellCarbon(CarbonTradeDto dto);
}

